// miniprogram/pages/superUpload/superUpload.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    file_path: "",
    access_token: "",
    fileID: "",
    dbname: "",
  },

  // 1.选择文件
  chooseFile() {
    let that = this
    wx.chooseMessageFile({
      count: 1,
      type: 'file',
      success(res) {
        let path = res.tempFiles[0].path;
        console.log("选择JSON成功", path);
        that.setData({
          file_path: res.tempFiles[0].name,
        })
        // 调用函数上传刚才选择的数据
        that.uploadJson(path)
      },
      fail(res) {
        console.log("选择文件失败", res);
        wx.showToast({
          title: '选择文件失败',
        })
      }
    })
  },

  //2.上传刚才选择的文件。
  async uploadJson(path) {
    let that = this
    await wx.cloud.uploadFile({
      cloudPath: that.data.file_path,
      filePath: path,
      success: res => {
        console.log("上传文件成功", res.fileID);
        that.setData({
          fileID: res.fileID
        })
        that.jsonToDB()
      },
      fail: err => {
        wx.showToast({
          title: '上传文件失败',
        })
        console.log("上传失败", err)
      }
    })
  },

  // // 3.获取进入数据库的access-token
  // async getMyToken() {
  //   let that = this
  //   await wx.cloud.callFunction({
  //     name: "getToken",
  //     success(res) {
  //       console.log(res)
  //       that.setData({
  //         access_token: JSON.parse(res.result).access_token
  //       })
  //       //
  //       that.jsonToDB(that.data.access_token)
  //     },
  //     fail(res) {
  //       console.log("getToken云函数失败", res)
  //     }
  //   })
  // },

  // 4.调用云函数，从云函数使用http api 上传csv/json文件到数据库
  async jsonToDB() {
    let that = this
    wx.cloud.callFunction({
      name: "jsonToDB",
      data: {
        access_token: that.data.access_token, // 将access_token作为参数传递给云函数
        dbname: that.data.dbname,
        file_path: that.data.file_path,
      },
      success(res) {
        console.log("uploadDB上传成功", res)
        wx.showToast({
          title: '上传JSON成功',
        })
      },
      fail(res) {
        // wx.showToast({
        //   icon: none,
        //   title: 'uploadDB上传失败',
        // })
        console.log("云函数jsonToDB失败", res)
      }
    })

  },

  // 上传成绩JSON
  uploadGrade: function () {
    let that = this
    that.setData({
      dbname: "gradeRecord"
    })
    that.chooseFile();
  },

  // 上传代码JSON
  uploadCode: function () {
    let that = this
    that.setData({
      dbname: "codes"
    })
    that.chooseFile();
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this
    wx.cloud.callFunction({
      name: "getToken",
      success(res) {
        console.log(res)
        that.setData({
          access_token: JSON.parse(res.result).access_token
        })
        console.log(that.data.access_token)
      },
      fail(res) {
        console.log("getToken云函数失败", res)
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})